iT邦幫忙

2025 iThome 鐵人賽

DAY 13
0
自我挑戰組

從0開始學習Java系列 第 13

Set介面-錯誤小範例

  • 分享至 

  • xImage
  •  
package ecpay_practice2;

import java.util.HashSet;
import java.util.Set;

//HashSet使用多型的完整的範例
public class HashSetPractice {
	public static void main(String[] args) {
		Set<User> onlineUsers = new HashSet<>();

		// 版本一:錯誤的示範 (The "Gotcha" Version)
		User user1 = new User("Alice");
		User user2 = new User("Alice");
		User user3 = new User("Bob");

		onlineUsers.add(user1);
		onlineUsers.add(user2);
		onlineUsers.add(user3);

		System.out.println(onlineUsers);

	}
}

class User {
	private String username;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public User(String username) {
		super();
		this.username = username;
	}

	// 為了方便打印,我們覆寫一下 toString 方法
	// toString() 不是來自任何介面 (Interface),而是來自所有Java類別的共同祖先——java.lang.Object 類別
	// (Class)。
	// 例如,如果你直接印出一個 User 物件,可能會得到像 User@15db9742 這樣的輸出,這對我們除錯或閱讀來說,資訊量非常低。
	// 覆寫 (Override) 的目的:我們覆寫 toString()
	// 方法,就是為了提供一個更有意義、更具可讀性的字串表示。我們希望看到的不是記憶體位址,而是物件內部的狀態(例如,使用者的名稱)。
	@Override
	public String toString() {
		return username;
	}

}

上一篇
加密是什麼?
下一篇
Set成功範例,覆寫hashCode 和equals方法
系列文
從0開始學習Java21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言